It is well known that channel coding can provide error correction capability, error detection capability, or both. A channel decoder that can detect errors passes this information to an error handling routine, which typically either signals for retransmission of an erroneous block of data, or attempts some form of error concealment.
The simplest and by far most commonly used method for joint error detection and correction is to use a concatenation of two codes: a cyclic redundancy check (CRC) error detection code to provide error detection on the information bits, and an error correction code to provide error correction on both the information bits and the CRC bits. Thus, the use of a CRC generally provides for the detection of any errors that remain after error correction. This method does not use a single code and a decoder which can both correct and detect errors. This method does not offer the advantage of error detection without the overhead of a CRC, and does not base both the correction and detection on the soft inputs (a CRC accepts only hard inputs), when soft inputs are available.
(24,12) Golay code encoders and decoders based on the non-binary hexacode have been used in the communication systems for error handling. The family of hexacode-based Golay decoders is very valuable because of the low complexity involved in soft-decision decoding of the popular (24,12) Golay code. The hexacode-based Golay decoders can also accept hard inputs, and are less complex than other hard-decision Golay decoders. The drawback of the hexacode-based Golay decoders is that the Golay code must be represented in a very particular format. Encoding of information packets to be decoded with a hexacode-based Golay decoder is accomplished by a multi-level hexacode based Golay encoder, as described in a paper by O. Amrani, Y. Be'ery, A. Vardy, F. Sun, and H. van Tilborg entitled: "The Leech lattice and the Golay code: Bounded Distance Decoding and Multi-level Constructions", IEEE Trans. Inform. Theory, Vol. IT-40, pp. 1030-1043, July 1994. The multi-level Golay encoder is non-systematic, such that the input bits to the encoder do not appear within the output bits of the encoder. Non-systematic encoders cause a slightly worse decoded information bit error rate (BER) than systematic encoders due to error propagation.
Presently, the hexacode-based Golay decoders are used only for error correction. Thus there is a need for a communication system that provides for combination of error detection and error correction utilizing hexacode-based Golay decoders.